<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<!-- $Id: bans.html,v 1.11 2002/03/09 21:14:15 wcc Exp $ -->

<html>
  <head>
    <title>Eggdrop Documentation: Bans, Invites, and Exempts</title>
  </head>

  <body>
    <div align="center">
      <p><strong>Bans, Invites, and Exempts</strong></p>
    </div>
    <hr>

    <p>I assume that you know how bans work on IRC. Eggdrop handles bans,
    exempts and invites in various ways, and this file is intended to help
    clarify how these modes are used within the bot. From here on,
    &#39;mode&#39; applies to all three modes (bans, exempts, and invites)
    unless otherwise specified. There are three types of modes:</p>

    <blockquote>
      <dl>
        <dt><strong>Global modes</strong></dt>

        <dd>
          <p>These modes will be active on every channel the bot monitors.
          Some will &quot;expire&quot; after a while (be removed
          automatically). Others are considered &quot;permanent&quot; and
          can only be removed by a master.</p>
        </dd>

        <dt><strong>Channel modes</strong></dt>

        <dd>
          <p>These modes are active only on one channel, and are almost
          always temporary modes that expire after an hour or so (depending
          on how long you&#39;ve specified in the config file). Usually
          they&#39;re created by a Tcl script of some sort.</p>
        </dd>

        <dt><strong>Non-bot modes</strong></dt>

        <dd>
          <p>These are modes that were not placed by the bot. They can be
          removed by anyone on the channel. The other two types of modes
          are protected by the bot (unless the channel settings specify
          otherwise), and have to be removed via the bot.</p>
        </dd>
      </dl>
    </blockquote>

    <p>Bans can also be either sticky or unsticky:</p>

    <blockquote>
      <dl>
        <dt><strong>Sticky</strong></dt>

        <dd>
          <p>These modes are usually set by a user using the &quot;.stick&quot;
          command. Modes with this attribute are attempted to be kept active
          on the channel at all times by the bot, even if the channel is set
          to use dynamic modes. Obviously, if the channel isn&#39;t set to use
          dynamic modes, this won&#39;t have any effect.</p>
        </dd>

        <dt><strong>Un-sticky</strong></dt>

        <dd>
          <p>These modes are the style that Eggdrop sets by default when
          a user uses one of the commands that result in a mode. This
          attribute means that the ban will be removed if using dynamic
          modes after a certain time. If a mode is &quot;sticky&quot; and
          you wish to set it to be &quot;un-sticky&quot;, use the
          &quot;.unstick&quot; command.</p>
        </dd>
      </dl>
    </blockquote>

    <p>Mode behavior:</p>

    <blockquote>
      <dl>
        <dt><strong>Bans</strong></dt>

        <dd>
          <p>If the channel is supporting dynamic bans, then the ban is set
          when a user with a matching hostmask joins the channel; otherwise,
          the modes are set at all times. On a channel with dynamic bans,
          the ban expires after &#39;ban-time&#39; minutes (which is specified
          in the config file).</p>
        </dd>

        <dt><strong>Exempts</strong></dt>

        <dd>
          <p>If the channel is not supporting dynamic exempts, then they are
          set at all times. Otherwise, the exemption is set when a ban is
          placed whose host includes that covered by the exempt. The exempt
          will remain in place for at least &#39;exempt-time&#39; minutes
          (defined in config file) or until after the corresponding ban has
          been removed, whichever happens last.</p>
        </dd>

        <dt><strong>Invites</strong></dt>

        <dd>
          <p>If the channel does not support dynamic invites, then they are
          set at all times. Otherwise, the invite is set when the channel
          is +i and a user requests an invite into the channel. The invite
          then remains set for &#39;invite-time&#39; minutes (defined in
          config file) or until the channel goes -i again, whichever happens
          last.</p>
        </dd>
      </dl>
    </blockquote>
    <hr>

    <p><em>Copyright &copy; 1997 Robey Pointer<br>
     Copyright &copy; 1999, 2000, 2001, 2002 <a href="http://www.eggheads.org/">
     Eggheads Development Team</a></em></p>
  </body>
</html>
